Conventional computer systems allow for the production and distribution of multimedia data, including video, audio and image data. Such production is increasing at a phenomenal rate due to the growing popularity of the Internet, the growing affordability of personal computers capable of efficiently processing multimedia data to provide a pleasing experience for users, as well as the fact that multimedia data is far superior to text-only data in conveying content-rich information.
People now access and use multimedia data in numerous ways. One way that people access multimedia data is over a network. For example, people using web browsers on personal computers now access multimedia data by surfing the World Wide Web via the Internet. Countless numbers of content providers link multimedia data to web pages accessible by people using web browsers. Today, persons using web browsers can access a web page from a web server operated by a content provider to view video clips, listen to audio clips, or view images made available by the content provider.
When a client requests a piece of media content such as digital video, audio, or some other sampled content from a server, the client typically provides the global address of the content in the form of a Uniform Resource Locator (URL). A server then accesses the content and sends or “streams” it to the client as a continuous data stream.
There are various file formats for streaming media content and composite media streams. Regardless of the streaming file format used, an individual data stream may contain a sequence of digital data sets or units. The units can represent an image, sound, or some other stimuli that is perceived by a human to be continuously varying. The client can render the units individually, or in sequence, to reproduce the original stimuli. For example, a video data stream includes a sequence of digitally specified graphics frames that are rendered in sequence to produce a moving picture.
A playlist file, for conventional systems, can contain information such as whether to play certain pieces of media content more than one time, which pieces of media content to play, the order in which to play referenced media content, and the like. Playlist files also can contain references to one or more media streams and describe how pieces of media are to be combined. Playlists do not contain the actual media data, but rather references to the media data. As a result, playlist files are typically small, generally only containing text, and are generally easy and computationally inexpensive to modify. References to a single piece of media may appear in many playlist files.
Conventional playlist files have the effect of combining several individual pieces of media content into one single complex piece of content, and they are important to providers of streaming media. They allow content providers to combine advertisements with other content, and therefore build a business based on advertising revenue. They allow Internet radio stations to create a playlist of broadcast songs. They also allow providers to brand their content by attaching previews or radio-station identifiers before or after the content.
Conventional playlists are implemented either on a client or on a server. The playlist is typically downloaded from a server such as a Web server, a file server, and/or the like. The client interprets the playlist file to present a series of requests to one or more servers to access at least a portion of the content represented in the playlist. A server is generally not aware whether the client is requesting content based on a corresponding reference in the currently executed client-side playlist file or whether the client obtains the reference from a source other than a playlist. This is because, from the server's perspective, use of a client-side playlist is indistinguishable from a client communicating a number of non-playlist generated requests to the server to play several different pieces of content one after the other.